package collection.stream;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

public class StreamApiDemo1 {
    public static void main(String[] args) {
        //向一个集合中存入10个随机整数
        List<Integer> list = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            list.add(random.nextInt(100));
        }
        System.out.println(list);
        /*
            集合提供了一个方法:stream()
            该方法可以将集合变为一个"流",可以和IO联想，那么流中的内容就是集合中
            的每个元素。
            我们可以向流上添加各种中间环节(相当于IO操作中的高级流)，每个中间环节
            会将元素经过时进行对应的处理
            最后要在Stream上添加终端环节，用于得到最终的处理结果
             集合       ->       中间环节      -> 终端环节
            +------+         +---+     +--+     +----+
            | x,x,x|---------|处 |-----|处 |-----|    |
            | x,x,x|---------|理 |-----|理 |-----|    |
            +------+         +---+     +--+     +----+
         */
        //将每个元素扩大3倍
        List<Integer> list2 = list.stream()//变成一个流
                .map(x->x*3)//添加一个中间环节，将元素变为lambda表达式的结果
                .collect(Collectors.toList());//终端环节，收集最后处理完的元素
        System.out.println(list2);

    }
}
